#ifndef _INGDIRECT_IT
#define _INGDIRECT_IT

#include <string>
#include <vector>

class ingdirect_it
{
public:
	ingdirect_it(const char * _filename);

	enum
	{
		USE_INGDIRECT_PINPAD_COORDS,
		CONFIG_TOT_OPTS
	} ;

	static const char* CONFIG_OPTS[CONFIG_TOT_OPTS][2];
	
	enum
	{		
		INGDIRECT_PINPAD_COORDS,
		INGDIRECT_PINPAD_COORDS_SEP,
		INGDIRECT_PINPAD_COORDS_REGEX,
		HIDDEN_TOT_OPTS
	} ;

	static const char* HIDDEN_OPTS[HIDDEN_TOT_OPTS][2];
	
	static const char* DEFAULT_INGDIRECT_PINPAD_COORDS_REGEX;
	static const std::string DEFAULT_INGDIRECT_PINPAD_COORDS_SEP;
	static const char* DEFAULT_PLAIN_TEXT_FILE;

	bool& get_use_ingdirect_pinpad_coords();
	std::string const& get_ingdirect_pinpad_coords_regex();
	std::vector<std::string> const& get_pinpad_coords();
	std::vector<std::string> const& get_ingdirect_pinpad_coords();
	const std::string& get_ingdirect_pinpad_coords_sep();

	ingdirect_it& operator=(ingdirect_it const& _cfg);	
	
	friend std::ostream& operator << (std::ostream& ost, const ingdirect_it & c);


protected:
	bool use_ingdirect_pinpad_coords;
	std::string _ingdirect_pinpad_coords_regex;
	std::vector<std::string> ingdirect_pinpad_coords;
	std::string ingdirect_pinpad_coords_sep;

private:
	std::string _config_filename;
};

#endif
